package com.cskaoyan.javase.array._5variable;

/**
 * 可变参数的语法:
 * [修饰符列表] 返回值类型 方法名 (形式参数列表,数据类型... 变量名){
 *   //方法体
 * }
 *
 * 注意事项:
 *      1.可变参数的格式,建议采取"数据类型... 变量名"
 *          这里就把"..."类比成"[]"
 *
 *      2.可变参数在一个方法中最多只有一个,且必须在形参列表的最后面.
 *
 *      3.带有可变参数的方法,也是可以构成方法重载的,因为可变参数本质就是数组.
 *      这时,仍然是根据就近原则,优先匹配确定参数个数的方法.
 *
 *      而且要稍微注意的是,不建议两个带有可变参数的方法组成方法的重载.因为很容易导致两个方法产生模糊的调用,导致方法都不可用.
 *
 * @since 10:04
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        /*test(10);
        test(10, 10);*/
        // Ambiguous method call: both 'Demo2.test(int...)' and 'Demo2.test(int, int...)' match
        // test(10,10);
    }

    // 该方法相当于传入一个int数组做参数
    /*public static void test(int... arr) {
    }

    public static void test(int a) {
    }

    public static void test(int a, int b) {
    }*/
    public static void test(int... arr) {

    }

    public static void test(int a, int... arr) {

    }
}
